1. Field of the Invention
This invention relates to data processing systems. More particularly, this invention relates to data processing systems including a plurality of execution units for executing data processing operations to generate processing results to be carried by result paths within said processor.
2. Description of the Prior Art
It is known to provide data processing units incorporating multiple execution units. For example, a processor may include multiple execution clusters and each of these execution clusters, such as an ALU cluster, a load/store cluster and the like, may include multiple execution units capable of performing processing operations in parallel to generate processing results. The processing results which are generated need to be carried to other points within the processor. For example, the processing results may be needed by another execution unit in another execution cluster as a consequence of a dependency between a processing result generated by one execution unit and an input operand required by another execution unit.
It is known to provide processors in which each execution unit has its own result bus with which it can carry its processing results to other portions of the processor. However, this approach requires a large amount of circuit overhead associated with the result bus routing and selection mechanisms which must be provided for each of the result buses. Another approach is to share result buses between execution units and stall an execution unit when it has completed its execution if a result bus is not available to carry away the processing result. A disadvantage of this approach is that stalling execution units necessarily impacts processing performance as the execution unit is then not available to perform other processing operations until its stall condition is removed.